// 在该案例中，使用fopen函数打开一个argv指定的文件，然后调用fgets函数读取文件全部内容
// 直到达到EOF文件末尾，将读出的内容放入到buf缓冲区中，同时发送至屏幕显示
// 再将writebuf缓冲区中的字符串调用puts函数写入到文件中，最后关闭文件，buf缓冲区的大小同样由宏定义给出

#include <stdio.h>
#include <stdlib.h>

#define MAXLINE 4096

int main(int argc, char *argv[]){
	
	int len;
	int i=0;

	// 定义文件类型指针
	FILE *fp;

	char writebuf[] = "Hello! I have read this file!\n";
	
	// 用来记录从文件中读取的字符串
	char buf[MAXLINE];

	if(argc != 2){
		printf("Please input the Current para!\n");
		return -1;
	}
	
	// 使用fopen函数打开文件
	fp = fopen(argv[1], "ab+");

	if(fp == NULL){
		printf("打开文件失败!\n");
		return -2;
	}

	// 使用fgets读取数据
	while(fgets(buf, MAXLINE, fp) != NULL){
		// 将读取的字符串输出到屏幕上，需要使用stdout标准输出流
		len = fputs(buf, stdout);
		if(len == EOF){
			printf("字符输出发生错误!\n");
			return -3;
		}
		
	}
	
	if( fputs(writebuf, fp) == EOF){
		printf("writebuf写入失败!\n");
		return -4;
	}
	
	// 输出换行符
	printf("\n");

	fclose(fp);

	return 0;

}
